#ifndef DRAWING_H
#define DRAWING_H
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#include<time.h>
#include"server_msg.h"
#include<string.h>
#include"user.h"

#define NUMBER_OPERATION 200

struct operation
{
	char *opString; //La chaine de caractère qui décrit l'opération
	int userID; //Un pointeur vers l'utilisateur qui l'a envoyé
	char time[10]; // Une chaine de caractère de temps au format hh:mm:ss
};

/*
*       Structure stoquant les paramètres d'une zone graphique
*	et les opérations effectuées sur le dessin sous forme de tableau.
*/

struct drawing
{
        int width;
        int height;

        struct operation list[NUMBER_OPERATION];
        int nRecord;
};

void initDevice(int w, int h, struct drawing *device); // On initialise la zone de dessin
int addOperation(char *op, int userID, struct drawing *device, int fileDescriptor); // On ajoute à la fin du tableau l'opération à faire.On enregistre l'utilisateur et l'heure à laquelle il a envoyé la requète. Retourne 1 si ok 0 si erreur.
void clear(struct drawing *device, int fileDescriptor); // On vide le tableau
void printOp(int fileDescriptor, struct operation op); // On affiche l'opération crée par l'utilisateur
void printDrawing(int fileDescriptor, struct drawing device);//On affiche toutes les opérations effectuées
#endif
